package com.hsurosy.domain.strategy.model.valobj;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * @Author Hsu琛君珩
 * @Date 2024-10-19 15:16
 * @Description 规则树对象，用于描述如何从根节点开始，逐步执行节点之间的逻辑跳转。
 * 规则树可以由多个节点组合，标记出从哪个节点开始执行树的逻辑。
 * @Version: v1.0.0
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RuleTreeVO {

    /** 规则树ID，用于标识该规则树 */
    private String treeId;
    /** 规则树的名称，便于识别 */
    private String treeName;
    /** 规则树的描述信息 */
    private String treeDesc;
    /** 规则树的根节点Key，表示从哪个节点开始执行规则树 */
    private String treeRootRuleNode;

    /** 规则树中的所有节点映射表，Key为规则节点的Key，Value为节点对象 */
    private Map<String, RuleTreeNodeVO> treeNodeMap;

}
